package com.feemanage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cfg.domain.ClaimProjectShow;
import com.common.core.page.PageDomain;
import com.feemanage.domain.BizCwIncome;
import com.feemanage.domain.bo.FundsFeeShowBo;
import com.feemanage.domain.vo.BizCwIncomeVo;
import com.feemanage.domain.vo.ClaimBudgetFeeShowVo;
import com.feemanage.domain.vo.ClaimFeeShowVo;
import com.feemanage.domain.vo.ClaimManageFeeVo;

import java.util.Collection;
import java.util.List;

public interface IcWIncomeService {

    /**
     * 查询银行到款列表
     * @param pageDomain
     * @param cwIncome
     * @return
     */
    IPage<BizCwIncomeVo> selectList(PageDomain pageDomain, BizCwIncome cwIncome);

    /**
     * 查询银行到款信息
     * @param cwIncome
     * @return
     */
    BizCwIncomeVo selectOne(BizCwIncome cwIncome);

    /**
     * 新增
     * @param cwIncome
     * @return
     */
    Boolean addCwIncome(BizCwIncome cwIncome);

    /**
     * 编辑
     * @param cwIncome
     * @return
     */
    Boolean editCwIncome(BizCwIncome cwIncome);

    /**
     * 删除
     * @param ids
     * @param isValid
     * @return
     */
    Boolean delCwIncome(Collection<String> ids, Boolean isValid);

    /**
     * 检查项目是否满足认领要求
     * @param projectId
     * @return
     */
    String checkProject(String projectId);

    /**
     * 项目筛选列表
     * @param pageDomain
     * @param showVo
     * @return
     */
    IPage<ClaimProjectShow> selectVproject(PageDomain pageDomain, ClaimProjectShow showVo);

    /**
     * 获取认领和项目相关的数据
     * @param showBo
     * @return
     */
    ClaimFeeShowVo selectClaimFeeInfo(FundsFeeShowBo showBo);

    /**
     * 额度拆分经费
     * @param showBo
     * @return
     */
    List<ClaimBudgetFeeShowVo> seletcBudegtFee(FundsFeeShowBo showBo);

    /**
     * 管理费
     * @param showBo
     * @return
     */
    List<ClaimManageFeeVo> selectManageFee(FundsFeeShowBo showBo);

    /**
     * 导出
     * @param cwIncome
     * @return
     */
    List<BizCwIncomeVo> selectExportList(PageDomain pageDomain,BizCwIncome cwIncome);
}
